﻿Imports System.Windows.Forms
Imports System.Drawing
Imports Logica


Public Class frmLogin

    Public p As frmInicio = New frmInicio

    Public Sub agregar(ByRef pp As frmInicio)

        p = pp

    End Sub

    Public Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        txtUsuario.Focus()

    End Sub


    Public Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

        'Seteo la cadena de conexion
        AccesoLogica.setCadenaConexion()

        If Not txtUsuario.Text.Equals("") Then
            If AccesoLogica.getEstadoConexion Then
                'Seteo la terminal de ewave al cargar el formulario
                AccesoLogica.setTerminalIdEwave()
                Dim terminal As String
                Dim cajero As String
                Dim nivelMenu As Integer
                Dim usuario As String


                terminal = AccesoLogica.getTerminalIdEwave()
                cajero = AccesoLogica.validarTerminal(terminal)

                nivelMenu = AccesoLogica.validarNivelUsuario(txtUsuario.Text)

                'MsgBox("Nivel: " & cajero & " terminal: " & terminal)

                Select Case nivelMenu
                    'cajero no existe
                    Case "0"

                        'menu de cajeros
                    Case "1"
                        p.btnNC.Enabled = True
                        'menu supervisores
                    Case "2"
                        p.btnInformes.Enabled = True
                        p.btnNC.Enabled = True
                        p.btnIntegracion.Enabled = True
                    Case Else
                End Select

                If nivelMenu > 0 Then
                    If txtUsuario.Text.Equals(cajero) Or cajero.Equals("") Then

                        Dim ff As frmFacturacion = New frmFacturacion

                        AccesoLogica.setUsuarioActivo(txtUsuario.Text)
                        usuario = AccesoLogica.getUsuarioActivo()
                        'MsgBox("Nivel acceso: " & nivelMenu & " cajero: " & usuario)

                        ff.TopLevel = False
                        ff.FormBorderStyle = FormBorderStyle.None
                        ff.Dock = DockStyle.Fill
                        p.SplitContainer1.Panel2.Controls.Add(ff)
                        p.btnLoginInicio.Enabled = False
                        p.btnLoginInicio.BackColor = Color.Gray
                        txtUsuario.Text = ""
                        Me.Dispose()

                        p.btnLoginInicio.Text = "Facturación"
                        ff.Show()
                    Else
                        If Not cajero.Equals("Error") Then
                            'ya existe un cajero logeado en la terminal pasada por parametro
                            AccesoLogica.setUsuarioActivo(cajero)
                            MessageBox.Show("El usuario " & cajero & " ,tiene un turno abierto en esta terminal, debe cerrar el turno actual.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                            txtUsuario.Focus()
                        Else
                            MessageBox.Show("Error de conexión,no se pudo obtener datos del usuario.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                        End If
                    End If
                Else
                    MessageBox.Show("El usuario no existe.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    txtUsuario.Focus()
                End If
            Else
                MessageBox.Show("Error al conectar con el servidor, reintentar.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Else
            MessageBox.Show("No se ingreso ningun usuario.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtUsuario.Focus()
        End If

    End Sub


    Private Sub txtUsuario_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtUsuario.KeyPress

        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If

        If e.KeyChar = ChrW(Keys.Enter) Then

            If Not txtUsuario.Text.Equals("") Then
                e.Handled = True
                'Le doy el foco al combo
                btnLogin.Focus()
            Else
                MessageBox.Show("Ingrese un nombre de usuario valido.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                txtUsuario.Focus()
            End If

        End If


    End Sub


    Private Sub txtUsuario_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUsuario.Enter

        txtUsuario.Focus()

    End Sub

    'cambia imagen de boton ingresar cuando pasas el mouse por arriba
    Private Sub btnLogin_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.MouseHover

        btnLogin.BackgroundImage = My.Resources.btnIngresarA1
        btnLogin.BackgroundImageLayout = ImageLayout.Stretch

    End Sub

    'cambia imagen de boton ingresar cuando sacas el mouse de arriba. 
    Private Sub btnLogin_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.MouseLeave

        btnLogin.BackgroundImage = My.Resources.btnIngresar
        btnLogin.BackgroundImageLayout = ImageLayout.Stretch

    End Sub
End Class